ShowTable of Contents
XPages アプリケーションを開発する際、複数のコントロールをグループ化したり範囲指定したりするために、
「パネル」コントロールが利用されます。
実は、これ以外にも XPages アプリケーションで範囲指定に利用できる要素がたくさんあります。
それらを比較しながら見て行きます。
「パネル」コントロール
一番基本的な範囲指定要素です。
コントロールパレットのコンテナコントロールセクションからドラッグ&ドロップして配置します。
プロパティとして以下のようなさまざまな値が設定可能な、一番汎用性の高いコントロールです。
コンテナとしての機能を持つため、内部に他のコントロールなど、任意の要素を含むことができます。
ブラウザからアクセスした際には、最終的に <div> タグに変換されて返されます。
「Div」コントロール
「パネル」コントロールを簡略化した範囲指定要素です。
コントロールパレットの「その他」をドラッグ&ドロップし、表示される「コントロールの作成」パネルで
「コンテナコントロール」 > 「Div」選択して配置します。
プロパティとして指定可能なものは以下のとおりで、「パネル」コントロールよりも減っています。
一番の違いは、「データ」タブが存在しないことです。
つまり、データソースの指定ができない「パネル」コントロールと言えます。
ではなぜこのような簡易版コントロールが存在するのでしょうか?
それは、サーバー側の処理を軽くし、より「軽い」アプリケーションを可能にするためです。
ページに配置された各コントロールには、サーバー側でそれぞれに対応する Java のクラスが生成され、
そのクラスが実際の処理を行います。「パネル」コントロールにも「Div」コントロールにも
それぞれ異なる Java クラスが用意されており、よりプロパティが豊富な「パネル」コントロールに
対応する Java クラスのほうが複雑な処理を行い、「重い」クラスとなります。
そのため、データソースを利用しないような場合には、「パネル」コントロールではなく、
「Div」コントロールを利用したほうが、「軽い」アプリケーションを実現できます。
ブラウザからアクセスした際には、「Div」コントロールも最終的に <div> タグに変換されて返されます。
<div> タグ
Domino Designer 上で XPage を編集中「ソース」タブを選択することで、XPage の XML ソースを
直接編集することができます。
ここには任意の HTML 要素を直接入力することが可能で、<div>...</div> タグを直接埋め込むことが
できます。この場合、XPages のサーバー側ではただの文字列として扱われ、「パネル」コントロールや
「Div」コントロールを配置した場合のような Java クラスの生成は行われないため、非常に軽い処理となります。
CSS のスタイルやクラスも通常の HTML として指定できます。
では、先の「Div」コントロールとの違いは何でしょうか?
それは、「Div」コントロールを利用した場合には「名前」をプロパティとして指定できる点です。
「名前」プロパティは、XPages アプリケーションを開発する際、重要な役割を持ちます。
例えば、部分更新の機能を利用する場合、その対象を「名前」プロパティの値で指定します。
指定された「名前」プロパティは、HTML に変換される際、より長い内部的な id に変換されて <div> タグに付与されます。
例えば、上述の <div> コントロールの場合には、次のような HTML に変換されます。
<div id="view:_id1:idDiv"></div>
"idDiv" が "view:_id1:idDiv" に変換されて付与されていることがわかります。
このような変換が行われるため、<div> タグを直接 XPage のソースに埋め込んだ場合、
id を付与することは可能ですが、対応する「名前」プロパティを持たせることはできません。
そのため、埋め込んだ <div> タグを部分更新の対象として指定することができません。
以上の3つの要素は、いずれも最終的には HTML の <div> タグに変換されるものですが、
提供する機能と処理の重さがそれぞれ異なります。高機能のものほど処理が重いのです。
そのため、利用したい機能を良く考えてそれらを使い分けることにより、必要な機能を提供しつつ
より「軽い」アプリケーションを開発することが可能になります。
「スパンコンテンツ」コントロール
<div> タグ以外のもうひとつの範囲指定要素に <span> タグがあります。
<div> タグがブロック要素であるのに対して、<span> タグがインライン要素である違いはありますが、
どちらも範囲指定のための要素です。
XPages のコントロールにも、これに相当するものがあります。
コントロールパレットの「その他」をドラッグ&ドロップし、表示される「コントロールの作成」パネルで
「コアコントロール」 > 「スパンコンテンツ」を選択して配置します。
プロパティとして指定可能なものは以下のとおりで、「Div」コントロールとほぼ同じです。
「Div」コントロール同様、「名前」プロパティが指定可能です。
ブラウザからアクセスした際には、最終的に <span> タグに変換されて返されます。
<span> タグ
<div> タグ同様、<span> タグも XPage のソースに直接埋め込むことができます。
「スパンコンテンツ」コントロールと <span> タグの関係は、「Div」コントロールと <div> タグと同様です。
標準でないコントロールの配置
「Div」コントロールや「スパンコンテンツ」コントロールは標準ではコントロールパレットに表示されていないため、
「その他」をドラッグ&ドロップした後表示されるパネルで選択して配置する必要がありました。
これらは Domino Designer のオプション設定を変更することで、パレット上に表示することが可能です。
Domino Designer の「ファイル」 > 「プリファレンス」を選択して表示される「設定」パネルで、
「Lotus Domino Designer」 > 「パレット」を選択します。
表示されるツリー内で、それぞれのコントロールをチェックします。
こうすることで、コントロールパレット上にこれらのコントロールが表示されるようになります。
